/*
 * Created on 2008-06-04
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
package elka.isi.gene;

import org.evolvica.core.IGenotype;
import org.evolvica.core.IntegerArrayGene;

/**
 * @author Zibi
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
public abstract class AnimalGene extends IntegerArrayGene {

	/**
	 * @param value
	 */
	public AnimalGene(int[] value) {
		super(value);
	}
	

//	public AnimalGene(int[] value) {
//		this.value = value;
//	}

	public AnimalGene(int[] value, int expectedLength) {
		super(value);
		if (value.length != expectedLength)
			throw new IllegalArgumentException(
				"Incorrect genome size! Should be: "
					+ expectedLength
					+ ", was: "
					+ value.length);
	}
//
	/**
	 * @see org.evolvica.core.IGenotype#copy()
	 */
	public abstract IGenotype copy();
//
//	/**
//		 * Returns the value.
//		 * @return String
//		 */
//	public int[] getValue() {
//		return value;
//	}
//
//	/**
//	 * Sets the value.
//	 * @param value The value to set
//	 */
//	public void setValue(int[] value) {
//		this.value = value;
//	}
//
//	/**
//	 * Returns a string representation of this gene.
//	 * @return string representation
//	 */
//	public String toString() {
//
//		return Arrays.toString(value);
//	}
	
	public int getGene(int index){
		return value[index];
	}
	public abstract int getGenomeSize();
	

}
